home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 5 / Apprentice-Release5.iso / Source Code / C / Games / SpriteFight 2002 v2.0a1 / StefSpritez.h < prev    next >
Encoding:
C/C++ Source or Header  |  1996-04-30  |  7.0 KB  |  286 lines  |  [TEXT/SPM ]

  1. /** StefSpritez.h  by Stefan Sinclair Copyright ©1995 All Rights Reserved **/
  2.  
  3. /*** #includes ***/
  4. #ifndef _STEFSPRITES_
  5. #define _STEFSPRITES_
  6.  
  7. #ifndef __SWCOMMON__
  8. #include "SWCommonHeaders.h"
  9. #endif
  10.  
  11. #ifndef __SOUND__
  12. #include <Sound.h>
  13. #endif
  14.  
  15. #ifndef __SPRITECOMPILER__
  16. #include "SpriteCompiler.h"
  17. #endif
  18.  
  19. #ifndef __SPRITEWORLD__
  20. #include "SpriteWorld.h"
  21. #endif
  22.  
  23. #ifndef __SPRITELAYER__
  24. #include "SpriteLayer.h"
  25. #endif
  26.  
  27. #ifndef __SPRITE__
  28. #include "Sprite.h"
  29. #endif
  30.  
  31. #ifndef __FRAME__
  32. #include "Frame.h"
  33. #endif
  34.  
  35. #ifndef __SPRITEWORLDUTILS__
  36. #include "SpriteWorldUtils.h"
  37. #endif
  38.  
  39. #ifndef _GAMEUTILS_
  40. #include "GameUtils.h"
  41. #endif
  42.  
  43. #ifndef _DEBUGUTILS_
  44. #include "DebugUtils.h"
  45. #endif
  46.  
  47. #ifndef _BLITPIXIE_
  48. #include "BlitPixie.h"
  49. #endif
  50.  
  51. #include "SpriteBackground.h" // mine
  52. #include "SpriteForeground.h"
  53.  
  54. // for compatibility w/ 68K & PPC compilers
  55. // NewAEEventHandlerProc is existant only in PPC C code, so it is my 'check'
  56. #ifdef NewAEEventHandlerProc
  57. #define StefGetKeys    GetKeys((unsigned long*)km)
  58. #else
  59. #define StefGetKeys    GetKeys((long*)km)
  60. #endif
  61.  
  62. /*** #defines ***/
  63. // keyboard scan codes
  64. #define keyTilde    0x32
  65. #define key1        0x12
  66. #define key2        0x13
  67. #define key3        0x14
  68. #define key4        0x15
  69. #define key5        0x17
  70. #define key6        0x16
  71. #define key7        0x1A
  72. #define key8        0x1C
  73. #define key9        0x19
  74. #define key0        0x1D
  75. #define keyMinus    0x1B
  76. #define keyEqual    0x18
  77. #define keyDelete    0x33
  78. #define keyTab        0x30
  79. #define keyQ        0x0C
  80. #define keyW        0x0D
  81. #define keyE        0x0E
  82. #define keyR        0x0F
  83. #define keyT        0x11
  84. #define keyY        0x10
  85. #define keyU        0x20
  86. #define keyI        0x22
  87. #define keyO        0x1F
  88. #define keyP        0x23
  89. #define keyLBracket    0x21
  90. #define keyRBracket    0x1E
  91. #define keyBackSlash    0x2A
  92. #define keyCapsLock    0x39
  93. #define keyA        0x00
  94. #define keyS        0x01
  95. #define keyD        0x02
  96. #define keyF        0x03
  97. #define keyG        0x05
  98. #define keyH        0x04
  99. #define keyJ        0x26
  100. #define keyK        0x28
  101. #define keyL        0x25
  102. #define keySemiColon    0x29
  103. #define keyQuote    0x27
  104. #define keyReturn    0x24
  105. #define keyShift    0x38
  106. #define keyZ        0x06
  107. #define keyX        0x07
  108. #define keyC        0x08
  109. #define keyV        0x09
  110. #define keyB        0x0B
  111. #define keyN        0x2D
  112. #define keyM        0x2E
  113. #define keyComma    0x2B
  114. #define keyPeriod    0x2F
  115. #define keySlash    0x2C
  116. #define keyControl    0x3B
  117. #define keyOption    0x3A
  118. #define keyCommand    0x37
  119. #define keySpace    0x31
  120. #define keyUpArrow    0x7E
  121. #define keyDownArrow    0x7D
  122. #define keyLArrow    0x7B
  123. #define keyRArrow    0x7C
  124. #define keyNumClear    0x47
  125. #define keyNumEqual    0x51
  126. #define keyNumSlash    0x4B
  127. #define keyNumAsterisk    0x43
  128. #define keyNumMinus    0x4E
  129. #define keyNumPlus    0x45
  130. #define keyNumEnter    0x4C
  131. #define keyNumPeriod    0x41
  132. #define keyNum0        0x52
  133. #define keyNum1        0x53
  134. #define keyNum2        0x54
  135. #define keyNum3        0x55
  136. #define keyNum4        0x56
  137. #define keyNum5        0x57
  138. #define keyNum6        0x58
  139. #define keyNum7        0x59
  140. #define keyNum8        0x5B
  141. #define keyNum9        0x5C
  142.  
  143. // REMEMBER! I use a type 'double' instead of 'long' in SWLib so I have 8 bytes of private sprite storage
  144. // Byte #0
  145. #define kSpriteBitData    0     // the following are accessed as bit-values only to save space!
  146. #define kPreviousSide    0    // 0=left side; 1=right side
  147. #define kCurrentSide    1    // 0=left side; 1=right side
  148. #define kLeftSide        FALSE
  149. #define kRightSide        TRUE
  150. #define kLifeStatus        2 // 0=dead; 1=alive
  151. // That leaves 5 empty bits in Byte #0
  152. // Byte #1
  153. #define kSpriteIDNum    1
  154. // Byte #2
  155. #define kPreviousAction    2
  156. // Byte #3
  157. #define kCurrentAction    3
  158. // Byte #4
  159. #define kHangTime        4
  160. // Byte #5
  161. #define kSpriteLife        5
  162. // Byte #6
  163. #define kCurrentFrame    6
  164. // Byte #7 - Last one
  165. #define kEmptyByte        7
  166.  
  167. // konstants
  168. #define kNumberOfSprites            7
  169. #define kPlayer1Sprite                0
  170. #define kPlayer2Sprite                1
  171. #define kArena                        2
  172. #define kPlayer1ProjectileSprite    2
  173. #define kPlayer2ProjectileSprite    3
  174. #define kBackgroundSprite            4
  175. #define kForegroundSprite            5
  176. #define kGuestSprite                6        
  177. #define kComputer1Sprite    10
  178. #define kComputer2Sprite    11
  179. #define kSpriteMaxLife        125
  180. #define kSpriteMinLife        5
  181. #define kPunchDamage        2
  182. #define kJumpPuchDamage        1
  183. #define kKickDamage            2
  184. #define kJumpKickDamage        1
  185. #define kJumpPunchDamage    1
  186. #define kJumpAttackDamage    1
  187. #define kProjectileDamage    1
  188. #define kUppercutDamage        3
  189. #define kWhipLashVelocity    2
  190. #define kSpriteHealingTime    6
  191. #define kMaxSpeed        6
  192. #define kJumpSpeed        -36
  193. #define kProjectileSpeed    12
  194. #define kJumpAttackVertSpeed    -20
  195. #define kJumpAttackHorizSpeed    20
  196. #define kGroundLevel            gSpriteHeight
  197.  
  198. // actions
  199. #define aIdle            0
  200. #define aJump            1
  201. #define aRun            2
  202. #define aBlock            3
  203. #define aPunch            4
  204. #define aKick            5
  205. #define aJumpAttack        6
  206. #define aJumpPunch        7
  207. #define aJumpKick        8
  208. #define aGotHit            9
  209. #define aDuck            10
  210. #define aUppercut        11
  211. #define aTaunt            12
  212. #define aShoot            13
  213. #define aDying            14
  214. #define aRideChair        15
  215. #define aPushChair        16
  216. #define aProjectileIdle 17
  217. #define aPostAttack        25
  218. #define aProjectileShoot    26
  219. #define aPostJumpAttack        30
  220. #define aDoNothing        31
  221.  
  222. // Rects
  223. #define kLifeRectTop        24
  224. #define kLifeRectBottom        (kLifeRectTop+16)
  225. #define kP1LifeRectLeft        10
  226. #define kP1LifeRectRight    (kP1LifeRectLeft+kSpriteMaxLife-kSpriteMinLife)
  227. #define kP2LifeRectLeft        (640-kSpriteMaxLife-10)
  228. #define kP2LifeRectRight    (kP2LifeRectLeft+kSpriteMaxLife-kSpriteMinLife)
  229.  
  230. // ppats
  231. #define kLifePixPatID        129
  232.  
  233. // PICTs
  234. #define kCreditsPICTResID        200
  235. #define kInstructionsPICTResID    201
  236. #define kHintsPICTResID            202
  237. #define kMorePICTResID            203
  238.  
  239. // sounds
  240. #define kNumSpriteSounds        7
  241. #define kFirstSoundResID        128
  242. #define sGotHit                    (128-kFirstSoundResID)
  243. #define sJump                    (129-kFirstSoundResID)
  244. #define    sJumpAttack                (130-kFirstSoundResID)
  245. #define sTaunt                    (131-kFirstSoundResID)
  246. #define sProjectile                (132-kFirstSoundResID)
  247. #define sSwing                    (133-kFirstSoundResID)
  248. #define sDead                    (134-kFirstSoundResID)
  249.  
  250.  
  251. struct SpriteGameRec {
  252.     SpriteWorldPtr spriteWorldP;
  253.     SpriteRec spriteArray[kNumberOfSprites];
  254.     SpriteLayerPtr playerLayerP;
  255.     SpriteLayerPtr    backgroundLayerP;
  256.     SpriteLayerPtr    foregroundLayerP;
  257. };
  258.  
  259. typedef struct SpriteGameRec SpriteGameRec;
  260. typedef SpriteGameRec *SpriteGamePtr, **SpriteGameH;
  261.  
  262. /*** Function Prototypes ***/
  263. void PlaySound(Handle soundHandle, SndChannelPtr sndChan);
  264. void LoopSound(Handle soundHandle, SndChannelPtr sndChan);
  265. void StopPlayingSound(SndChannelPtr sndChan);
  266. SW_FUNC void CombatMoveProc(SpritePtr srcSpriteP, Point* spritePoint);
  267. SW_FUNC void ProjectileMoveProc(SpritePtr srcSpriteP, Point* spritePoint);
  268. void CombatSpriteCollideProc(SpritePtr srcSpriteP,SpritePtr dstSpriteP,Rect* sectRect);
  269. short isPressed(unsigned short k);
  270. void StartWaiting(void);
  271. void StopWaiting(void);
  272.  
  273. /*** More from SpriteStatusChex.c ***/
  274. Boolean PlayerStatusCheck(SpritePtr srcSpriteP, Point *spritePoint);
  275. Boolean ProjectileStatusCheck(SpritePtr srcSpriteP, Point *spritePoint);
  276. void SpriteFrameUpdate(SpritePtr srcSpriteP, unsigned char *spriteDataPtr,
  277.         short rightSideAdjustFrames, Boolean forceUpdate);
  278. void GetSpriteAction(unsigned char *spriteDataPtr, Boolean *spriteAction, Boolean airBorne);
  279. void GetP1HumanAction(Boolean *spriteAction, Boolean airBorne);
  280. void GetP2HumanAction(Boolean *spriteAction, Boolean airBorne);
  281. void GetComputerAction(Boolean *spriteAction, unsigned char *dataP);
  282. Boolean GetSpriteSide(unsigned char *spriteDataPtr);
  283. Point GetSpriteMidPoint(Point spritePoint);
  284. void DigSpriteGrave(short spriteID, short deathMode);
  285.  
  286. #endif /* StefSprites */